1. Field of the Invention
The present invention generally relates to the interfacing of external devices with host devices and, more particularly, to the buffering of data transferred between such devices.
2. Related Art
As is well known, various types of interfaces may be used to facilitate data communication between host devices (e.g., computers or other devices) and external devices (e.g., hard drives or other devices). In particular, Universal Serial Bus (USB) ports have become a common way to attach hard drives and other types of external storage media devices to host computer systems with high performance.
The number of available USB ports is often a limiting factor in host computers. Because USB is a point-to-point master/slave bus, USB-compatible devices typically include only a single USB port. Thus, if users connect several storage media devices or other devices, the USB ports of the host computer may be quickly exhausted.
One approach to this problem involves the use of a USB hub which may be connected to a single USB port of the host computer to provide additional USB ports. Conventional USB hubs, and particularly hubs supporting the USB 3.0 specification, typically provide at least one dedicated data buffer for each port. For example, a USB hub providing four USB ports may include four data buffers. Typically, these data buffers are relatively small in size (e.g., approximately 10 kbits).
To connect an external storage media device to a USB port and achieve a high level of performance, it is typically necessary to provide a storage media device controller and an associated data buffer that is significantly larger (e.g., approximately 32 kbits) than conventional USB data buffers. However, an arrangement that includes both a conventional USB hub and a conventional storage media device controller may result in undesirable latency for storage media device data communications. In this regard, data communications passed from the host device to the USB hub are buffered by the USB hub data buffer. The data communications are then passed from the USB hub to the storage media device controller wherein they are further buffered by the storage media device controller data buffer. Similarly, data communications passed from storage media devices are buffered by the storage media device controller data buffer and then further buffered by the USB hub data buffer before being received by the host device.
Consequently, data throughput between the host device and storage media devices may suffer when the storage media device is connected through a USB hub. Such problems may be especially apparent when the USB hub is used for high speed data transfers, such as data communications between a host computer and storage media devices connected to USB ports of the USB hub. Additionally, the buffer in the hub and the buffer in the storage media device controller are a duplication of resources, which results in a higher cost. Accordingly, there is a need for an improved approach for interfacing various devices with host devices.